/*================================================================
 *   Copyright (C) 2021 All rights reserved.
 *   
 *   文件名称：singleton.h
 *   创 建 者：汉森伯逸
 *   创建日期：2021年02月27日
 *   描    述：
 *
 *================================================================*/
#pragma once

#include <memory>

namespace hsby{

template<typename T, typename X = void, int N = 0>
class Singleton{
public:
    static T& Instance(){
        static T v;
        return v;
    }
};

template<typename T, typename X = void, int N = 0>
class SingletonPtr{
public:
    static std::shared_ptr<T> Instance(){
        static std::shared_ptr<T> v(new T);
        return v;
    }
};

}